package com.molichuxing.gateway.bff.dealer.services;

import java.util.List;
import java.util.Map;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.gateway.bff.dealer.entity.request.modify.create.StoreCreateVo;
import com.molichuxing.gateway.bff.dealer.entity.response.StoreInfoVo;
import com.molichuxing.gateway.bff.dealer.entity.response.StoreModifyStatusVo;
import com.molichuxing.gateway.bff.dealer.entity.response.StoreModifyVo;
import com.molichuxing.gateway.bff.dealer.entity.response.StoreVo;

public interface StoreBffService {

    /**
     * 获取门店信息
     *
     * @param dealerId 经销商id
     * @return
     */
    public List<StoreVo> getStoreByDealerId(Integer dealerId);

    /**
     * 获取门店营业中信息
     *
     * @param dealerId       经销商id
     * @param notShowStoreId 门店id
     * @return
     */
    public List<StoreVo> getOpenStoreByDealerId(Integer dealerId, Integer notShowStoreId);

    /**
     * 获取门店信息列表
     *
     * @param params
     * @param pageNum
     * @param pageSize
     * @return
     */
    Paged<StoreVo> getStorePage(Map<String, Object> params, Integer pageNum, Integer pageSize) throws Exception;


    /**
     * 编辑门店
     *
     * @param storeModifyVo
     * @return
     * @throws Exception
     */
    public Boolean modifyStore(StoreModifyVo storeModifyVo) throws Exception;

    /**
     * 编辑门店营业状态
     *
     * @param storeModifyStatusVo
     * @return
     * @throws Exception
     */
    public Boolean modifyStoreStatus(StoreModifyStatusVo storeModifyStatusVo) throws Exception;

    /**
     * 添加
     *
     * @param storeCreateVo
     * @return
     * @throws Exception
     */
    public Boolean createStore(StoreCreateVo storeCreateVo) throws Exception;

    /**
     * 门店审核
     *
     * @param storeId
     * @param verifyStatus
     * @param rejectReason
     * @param remark
     * @return
     * @throws Exception
     */
    public Boolean modifyStoreVerifyStatus(Integer storeId, Integer verifyStatus,
                                           String rejectReason, String remark) throws Exception;


    /**
     * 获取门店详情
     *
     * @param storeId
     * @return
     */
    public StoreInfoVo getStoreInfo(Integer storeId) throws Exception;


}
